package br.com.webservicedelivery.domain;

import java.math.BigDecimal;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToOne;
import javax.persistence.Table;

@Entity
@Table(name = "pagamento")
@NamedQueries({
@NamedQuery(name = "Pagamento.listar", query = "SELECT pagamento FROM Pagamento pagamento"),
@NamedQuery(name = "Pagamento.buscarPorId", query = "SELECT pagamento FROM Pagamento pagamento WHERE id = :id")
})
public class Pagamento {

	@Id
	@GeneratedValue(strategy = GenerationType.AUTO)
	@Column(name = "id_pagamento")
	private Long id;
	
	@Column(name = "valor_final", precision = 7, scale = 2, nullable = false)
	private BigDecimal valorFinal;
	
	@Column(name = "pagamento_cartao", precision = 7, scale = 2, nullable = false)
	private BigDecimal pagamentoCartao;
	
	@Column(name = "pagamento_avista", precision = 7, scale = 2, nullable = false)
	private BigDecimal pagamentoAvista;
	
	@OneToOne(fetch = FetchType.EAGER)
	@JoinColumn(name = "entrega_id_entrega", referencedColumnName = "id_entrega", nullable = false)
	private Entrega entrega;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}

	public BigDecimal getValorFinal() {
		return valorFinal;
	}

	public void setValorFinal(BigDecimal valorFinal) {
		this.valorFinal = valorFinal;
	}

	public BigDecimal getPagamentoCartao() {
		return pagamentoCartao;
	}

	public void setPagamentoCartao(BigDecimal pagamentoCartao) {
		this.pagamentoCartao = pagamentoCartao;
	}

	public BigDecimal getPagamentoAvista() {
		return pagamentoAvista;
	}

	public void setPagamentoAvista(BigDecimal pagamentoAvista) {
		this.pagamentoAvista = pagamentoAvista;
	}

	public Entrega getEntrega() {
		return entrega;
	}

	public void setEntrega(Entrega entrega) {
		this.entrega = entrega;
	}

	@Override
	public String toString() {
		return "Pagamento [id=" + id + ", valorFinal=" + valorFinal
				+ ", pagamentoCartao=" + pagamentoCartao + ", pagamentoAvista="
				+ pagamentoAvista + ", entrega=" + entrega + "]";
	}
	
	
	
}
